SED(1) | Manuel de l'utilisateur Linux | SED(1) |
NOM¶
sed - Éditeur de flux pour le filtrage et la transformation de texte
SYNOPSIS¶
sed [OPTION]... {script-seulement-si-pas-d-autre-script} [fichier-d-entrée]...
DESCRIPTION¶
sed est un éditeur de flux. Un éditeur de flux est utilisé pour effectuer des transformations de texte basiques sur un flux d'entrée (un fichier ou l'entrée d'un tube). Alors que d'une certaine manière il est similaire à un éditeur qui permette des éditions scriptées (comme ed), sed fonctionne en seulement une passe sur l'entrée(s) et est, par conséquent, plus efficace. Mais c'est sa capacité à filtrer du texte dans un tube qui le distingue des autres éditeurs.
-n, --quiet, --silent
- Supprimer l'affichage automatique de l'espace de travail.
-e script, --expression=script
- Ajouter le script aux commandes à exécuter.
-f script-file, --file=script-file
- Ajouter le contenu du fichier script aux commandes à exécuter.
-i[SUFFIX], --in-place[=SUFFIX]
- Éditer le fichier en ligne (faire une sauvegarde si une extension est fournie).
-l N, --line-length=N
- Spécifier la longueur de coupure désirée pour la commande « l ».
--posix
- Désactiver toutes les extensions GNU.
-r, --regexp-extended
- Utiliser les expressions rationnelles dans le script.
-s, --separate
- Considérer les fichiers séparemment plutôt qu'un unique long flux continu.
-u, --unbuffered
- Charger un minimum de données des fichiers d'entrée et vider les tampons de sortie plus souvent.
Si aucune des options parmi -e, --expression, -f ou --file n'est fournie, le premier argument qui ne soit pas une option est considéré comme étant le script à interpréter. Si aucun fichier n'est spécifié en entrée, l'entrée standard est lue.
SYNOPSIS DES COMMANDES¶
Il s'agit seulement d'un bref synopsis des commandes de sed pour servir d'aide-mémoire à ceux qui connaissent déjà sed. Vous devrez consulter d'autres documentations (comme la page texinfo, en anglais) pour avoir une description plus complète.
Commandes zéro adresse¶
- : étiquette
- Étiquette pour les commandes b et t.
- #commentaire
- Le commentaire va jusqu'au prochain saut de ligne (ou à la fin du fragment de script -e).
- }
- L'accolade fermante d'un block { }.
Commandes zéro ou une adresse¶
- =
- Afficher le numéro de la ligne courante.
- a \
- texte
- Ajouter texte, qui a un saut de ligne incorporé précédé par une barre oblique inverse.
- i \
- text
- Insérer text, qui a un saut de ligne incorporé précédé par une barre oblique inverse.
- q
- Quitter immédiatement le script sed sans traiter plus d'entrées, excepté que si l'affichage automatique n'est pas désactivé, l'espace de travail sera affiché.
- Q
- Quitter immédiatement le script sed sans traiter plus d'entrées.
- r nom_fichier
- Ajouter le texte lu dans nom_fichier.
- R nom_fichier
- Ajouter une ligne lue dans nom_fichier.
Commandes qui acceptent des intervalles d'adresses.¶
- {
- Débuter un block de commandes (le finir avec }).
- b étiquette
- Sauter à étiquette ; si étiquette est omise, sauter à la fin du script.
- t étiquette
- Si une commande « s/// » a réalisé avec succès une substitution depuis que la dernière ligne d'entrée ait été lue et depuis la dernière commande t ou T, sauter à étiquette ; si étiquette est omise, sauter à la fin du script.
- T étiquette
- Si aucune commande « s/// » n'a réalisé avec succès une substitution depuis que la dernière ligne d'entrée ait été lue et depuis la dernière commande t ou T, sauter à étiquette ; si étiquette est omise, sauter à la fin du script.
- c \
- texte
- Remplacer les lignes sélectionnées par le texte, qui a un saut de ligne incorporé précédé par une barre oblique inverse.
- d
- Effacer l'espace de travail. Démarrer un nouveau cycle.
- D
- Effacer l'espace de travail jusqu'au premier saut de ligne incorporé. Démarrer un nouveau cycle mais sauter la lecture de l'entrée s'il y a encore des données dans l'espace de travail.
- h H
- Copier/ajouter l'espace de travail à l'espace intermédiaire.
- g G
- Copier/ajouter l'espace intermédiaire à l'espace de travail.
- x
- Échanger le contenu des espaces de travail et intermédiaire.
- l
- Afficher la ligne courante sous une forme « visuellement non ambigüe ».
- n N
- Lire/ajouter la ligne suivante de l'entrée dans l'espace de travail.
- p
- Afficher l'espace de travail courant.
- P
- Afficher l'espace de travail courant jusqu'au premier saut de ligne incorporé.
- s/regexp/remplacement/
- Tenter de faire correspondre regexp à l'espace de travail. Si cela réussit, remplacer avec replacement la portion qui correspond. Le remplacement peut contenir le caractère spécial & pour faire référence à cette portion de l'espace de travail qui correspondait, et les caractères spéciaux de \1 à \9 pour faire référence aux sous-expressions, mises en correspondance avec regexp, correspondantes.
- w nom_fichier
- Écrire le contenu de l'espace de travail dans nom_fichier.
- W nom_fichier
- Écrire la première ligne de l'espace de travail courant dans nom_fichier.
- y/source/dest/
- Translitérer les caractères de l'espace de travail qui apparaissent dans source en leur caractère correspondant dans dest.
Adresses¶
Les commandes sed peuvent être fournies sans adresse, auquel cas la commande sera exécutée pour toutes les lignes de l'entrée ; avec une adresse, auquel cas la commande ne sera exécutée que pour les lignes de l'entrée qui correspondent à cette adresse ; ou avec deux adresses, auquel cas la commande ne sera exécutée que pour les lignes appartenant à l'intervalle inclusif débutant à la première adresse et finissant à la seconde. Il faut noter trois choses à propos des intervalles d'adresses : la syntaxe est addr1,addr2 (c'est-à-dire que les adresses sont séparées par une virgule); la ligne qui correspond à addr1 sera toujours acceptée, même si addr2 sélectionne une ligne précédente ; et si addr2 est une regexp (expression rationnelle), elle ne sera pas testée sur la ligne qui correspond à addr1.
Après l'adresse (ou intervalle d'adresse) et avant la commande, un ! peut être inséré qui spécifie que la commande ne sera exécutée que si l'adresse (ou intervalle d'adresse) ne correspond pas.
Les types d'adresse suivants sont supportés :
- nombre
- Faire correspondre seulement la ligne nombre.
- premier~pas
- Faire correspondre chaque pas-ième ligne en commençant à la ligne premier. Par exemple, « sed -n 1~2p » affichera toutes les lignes impaires du flux d'entrée, et les adresses « 2~5 » feront correspondre chaque cinquième ligne en commençant à la seconde. (Ceci est une extension).
- $
- Faire correspondre la dernière ligne.
- /regexp/
- Faire correspondre les lignes qui correspondent à l'expression rationnelle regexp.
- \cregexpc
- Faire correspondre les lignes qui correspondent à l'expression rationnelle regexp. Le c peut être n'importe quel caractère.
sed GNU supporte également des formes « deux adresses » particulières :
- 0,addr2
- Démarrer dans l'état « la première adresse correspond », jusqu'à ce que addr2 soit trouvée. Ceci est similaire à 1,addr2, excepté que si addr2 correspond à la toute première ligne de l'entrée, la forme 0,addr2 sera à la fin de cet intervalle, alors que la forme 1,addr2 sera encore au début de cet intervalle.
- addr1,+N
- Correspondra à addr1 et aux N lignes suivant addr1.
- addr1,~N
- Correspondra à addr1 et aux lignes suivant addr1 jusqu'à qu'à la prochaine ligne dont le numéro est un multiple de N.
EXPRESSIONS RATIONNELLES¶
Les expressions rationnelles POSIX.2 devraient être supportées, mais elles ne le sont pas complètement à cause de problème de performance. La séquence \n dans une expression rationnelle correspond au caractère saut de ligne, il en est de même pour \a, \t, et d'autres séquences.
BOGUES¶
Envoyez les rapports de bogues (en anglais) par courriel à bonzini@gnu.org. Assurez-vous d'inclure le mot « sed » quelque part dans le « Sujet : ». Merci d'inclure également la sortie de la commande « sed --version » dans le corps de votre rapport.
COPYRIGHT¶
Copyright © 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.
VOIR AUSSI¶
awk(1), ed(1), grep(1), tr(1),
perlre(1)
sed.info
différents livres sur sed
la FAQ sed en anglais (http://sed.sf.net/grabbag/tutorials/sedfaq.txt),
http://sed.sf.net/grabbag/.
La documentation complète de sed est maintenue en anglais au format manuel Texinfo. Si les programmes info et sed sont correctement installés sur votre machine, la commande
- info sed
vous donnera accès au manuel complet.
TRADUCTION¶
Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 3 juillet 2006 et révisée le 19 novembre 2007.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 1 sed ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Février 2006 | sed-4.1.5 |